#ifndef __OGRE_LOGGER_HPP__
# define __OGRE_LOGGER_HPP__

# include <OgreLog.h>
# include <OgreLogManager.h>


class ogre_logger_impl_t : public Ogre::LogListener
{
public:
    virtual void messageLogged(const Ogre::String &message, Ogre::LogMessageLevel lml, bool maskDebug, const Ogre::String &logName);
};

/**
 * @brief Ogre logger binder.
 * @remarks
 *      Helps to redirect Ogre log messages to our logger subsystem.
 */
class ogre_logger_t
{
public:
    ogre_logger_t();
    ~ogre_logger_t();
private:
    Ogre::Log *ogre_log_;
    ogre_logger_impl_t *ogre_logger_;
    Ogre::LogManager *custom_log_mgr_;
};


#endif //__OGRE_LOGGER_HPP__
